/**
 * 
 */
package com.hs.core.serialnum;

import org.apache.commons.lang.StringUtils;

/**
 * @author shl
 *
 */
public abstract class AbstarctSerialNum {

	  /** 
     * @param tableName - 表名 
     * @param columnName - code 对应 字段名 
     * @param numCount - 最后流水号数字的个数 
     * @param lockString - 对应于 LOCK_TABLE表中的字符串名 
     */   
	public AbstarctSerialNum(){
		
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}
	/**
	 * 查询当前最大的流水号
	 * @return
	 */
	public abstract String queryMaxNum();
	/**
	 * 生成流水号
	 * @param numCount
	 * @return
	 */
	public String gennerateNewCode(int numCount){    
        StringBuffer  newCode = new StringBuffer("");
        //查询当前最大的序号
        String maxNum = queryMaxNum();
        if(numCount == 0){
        	numCount = 6;
        }
        if(StringUtils.isBlank(maxNum)){
        	maxNum = "1";
        }
        int numlength = maxNum.length();
        
        for(int k = 0;k <= (numCount - numlength);k++){
        	newCode.append("0");
        }
        newCode.append(maxNum);
        return newCode.toString();    
     }    

    
}
